home *** CD-ROM | disk | FTP | other *** search
/ Univers Interactif 3 / INTERACTIF.BIN / pc / planeten / internet / intersl1.sit / InterSLIP Scripts 1.0 / Generic Modem Driver next >
Text File  |  1994-06-16  |  4KB  |  200 lines

  1. !Generic Modem Driver CCL Script for InterSLIP.
  2. ! Copyright 1994 Dan Cottler, et al. All rights reserved.
  3. !
  4. ! Drive just about any modem from InterSLIP.
  5. !
  6. ! In case of difficulty, send email to <dcottler@halcyon.com>.
  7. !
  8. ! Revision History:
  9. !   06/02/94 V1.0-006 First public release.
  10. !
  11. ! The init string supplied from the InterSLIP set-up dialog should set
  12. ! the modem to its Factory defaults then - 
  13. !   enable Reliable or Auto-Reliable Mode with fallbacks as desired,
  14. !   enable V.42bis compression (if desired),
  15. !   enable independently buffered DTE and DCE speeds,
  16. !   disable DTR (it's incompatible with h/w flow control on a Mac),
  17. !   enable bidirectional _serial_port_ hardware (CTS/RTS) flow control.
  18. !
  19. ! A typical (generic) init string looks like:
  20. !   "AT&F&D0&K3"        to accept any speed connection.
  21. !   "AT&F&D0&K3NS37=9"  to force a 9600bps connection.
  22. !   "AT&F&D0&K3NS37=11" to force a 14.4Kbps connection.
  23. !
  24. ! "E0Q0V1" is automatically appended to the init string. And "M0" is used
  25. ! to turn off the speaker, if required. Hang-up is done by getting the modem's
  26. ! attention then issuing the standard reset command, "ATZ". This should do
  27. ! the hang-up and reset the modem to the defaults the user has pre-saved. DTR
  28. ! is then dropped to close the port.
  29. !------
  30.  
  31. !+
  32. !INITIALIZATION!!!!
  33. !-
  34. @ANSWER
  35. @ORIGINATE
  36. !
  37. ! Set up the serial port and clear the retry counter.
  38. ! Set up the modem --
  39. !   send an empty <cr> to clear the input buffer.
  40. !   pause for 1/2 second to let internal modems wake-up.
  41. !   send the user-supplied string, plus misc stuff.
  42. !   if the speaker-on flag is false, turn off speaker.
  43. !
  44. !SerReset 57600, 0, 8, 1
  45. HSReset 0 0 0 0 0 0
  46. SetTries 0
  47. !
  48. note "Initializing modem..."
  49. write "\13"
  50. pause 10
  51. write "^4E0Q0V1S0=0\13"
  52. matchclr
  53. matchstr 1 10 "OK"
  54. matchstr 2 90 "ERROR"
  55. matchread 150
  56. note "Init failure. Check init string!"
  57. pause 30
  58. exit -6019
  59. !
  60. @LABEL 10
  61. ifstr 2 20 "1"
  62. write "ATM0\13"
  63. matchclr
  64. matchstr 1 20 "OK"
  65. matchstr 2 90 "ERROR"
  66. matchread 100
  67. exit -6019
  68. !
  69. @LABEL 20
  70. ifANSWER 60
  71.  
  72. !+
  73. !ORIGINATE MODE!!!!
  74. !-
  75. !
  76. ! The modem is ready for use, so --
  77. !   dial the host then wait for it to answer.
  78. !   if the lines are busy or the carrier drops, retry 2x.
  79. !
  80. note "Dialing ^3^1..."
  81. write "ATDT^3^1\13"
  82. pause 30
  83. note "Waiting to establish comm link..."
  84. matchclr
  85. matchstr 1 30 "BUSY"
  86. matchstr 2 40 "NO CARRIER"
  87. matchstr 3 50 "CONNECT"
  88. matchstr 4 90 "ERROR"
  89. matchstr 5 91 "NO ANSWER"
  90. matchstr 6 92 "NO DIALTONE"
  91. matchread 600
  92. note "Timed-out waiting for carrier!"
  93. write "\13"
  94. pause 15
  95. exit -6019
  96. !
  97. @LABEL 30
  98. inctries
  99. iftries 3 45
  100. note "The line is BUSY!  Retrying..."
  101. pause 15
  102. jump 20
  103. !
  104. @LABEL 40
  105. inctries
  106. iftries 3 45
  107. note "Got NO CARRIER!  Retrying..."
  108. pause 15
  109. jump 20
  110. !
  111. @LABEL 45
  112. note "Three connect attempts failed!"
  113. pause 15
  114. note "<Idle>"
  115. exit -6019
  116. !
  117. @LABEL 50
  118. ! A comm link has been established --
  119. !   turn on h/w handshaking in InterSLIP (just gets ignored if no hwhsk cable).
  120. !   tell the s/w we're talking with a DCE speed of 14400bps. This may not
  121. !     be true, but it seems to perform better than telling it the actual speed.
  122. !   pause a second to let the initial i/o burst pass.
  123. !
  124. note "Communications link established!"
  125. HSReset 0 1 0 0 0 0
  126. CommunicatingAt 14400
  127. pause 10
  128. exit 0
  129.  
  130. !+
  131. !ANSWER MODE!!!!
  132. !-
  133. @LABEL 60
  134. !
  135. ! The modem is ready for use --
  136. !   wait for the modem to say "RING", then answer the call.
  137. !   or enable AA then wait for the call.
  138. !
  139. note "Answer mode is not implemented!"
  140. pause 20
  141. exit -1
  142.  
  143. !+
  144. !HANG UP THE MODEM!!!!
  145. !-
  146. @HANGUP
  147. !
  148. ! The modem needs to be shutdown, so --
  149. !   turn off handshaking in InterSLIP (clear any possible lock-up).
  150. !   get the modem's attention.
  151. !   tell the modem to reset.
  152. !   drop the DTR line.
  153. !
  154. HSReset 0 0 0 0 0 0
  155. pause 10
  156. note "Hanging up & resetting the modem..."
  157. write "\13"
  158. pause 30
  159. write "+++"
  160. matchclr
  161. matchstr 1 81 "OK"
  162. matchstr 2 81 "NO CARRIER"
  163. matchread 60
  164. @LABEL 81
  165. write "ATZ\13"
  166. matchclr
  167. matchstr 1 82 "OK"
  168. matchstr 2 82 "NO CARRIER"
  169. matchread 200
  170. @LABEL 82
  171. DTRClear
  172. note "The modem is on-hook and reset (I hope)!"
  173. pause 15
  174. note "<Idle>"
  175. exit 0
  176.  
  177. !+
  178. !Error messages - Just issue msg(s) then exit.
  179. !-
  180. !
  181. @LABEL 90
  182. note "Help!!!! Got ERROR from modem!!!!"
  183. pause 15
  184. note "Check the init string & phone number!"
  185. pause 20
  186. exit -6019
  187. !
  188. @LABEL 91
  189. note "Got NO ANSWER!"
  190. pause 20
  191. exit -6019
  192. !
  193. @LABEL 92
  194. note "Got NO DIALTONE!"
  195. pause 15
  196. note "Check the telephone cables!"
  197. pause 20
  198. exit -6019
  199.  
  200. !End of Generic Modem Driver CCL Script.